import { IParam, EntityBase } from "@/core";
import { IIBIZBOOK } from './interface/i-ibizbook';
import IBIZBOOKKeys from './ibizbook-keys';

/**
 * 图书基类
 * 基于template/src/api/{{appEntities}}/{{appEntities}}-base.ts.hbs生成  
 *
 * @export
 * @abstract
 * @class IBIZBOOKBase
 * @extends { EntityBase }
 * @implements { IIBIZBOOK }
 */
export abstract class IBIZBOOKBase extends EntityBase implements IIBIZBOOK {
	/**
	 * 实体名称
	 *
	 * @readonly
	 * @type {string}
	 * @memberof IBIZBOOKBase
	 */
	get srfdename(): string {
		return 'IBIZBOOK';
	}

	/**
     * 当前实体所有属性
     *
     * @protected
     * @type {string[]}
     * @memberof IBIZBOOKBase
     */
    protected get keys(): string[] {
        return IBIZBOOKKeys;
    }

	/**
	 * Creates an instance of ConstactOppoBase.
	 * @param {*} [data]
	 * @memberof IBIZBOOKBase
	 */
	constructor(data?: any) {
		super();
		this.setData(data);
	}

	/**
	 * 数组
	 **/
	array?: any;
	
	/**
	 * 建立人
	 **/
	createman?: any;
	
	get srfmajortext(): string {
		return this.ibizbookname;
	}

	set srfmajortext(val: string) {
		this.ibizbookname = val;
	}
	/**
	 * 图书名称
	 **/
	ibizbookname?: any;
	
	get srfkey(): string {
		return this.ibizbookid;
	}

	set srfkey(val: string) {
		this.ibizbookid = val;
	}

	/**
	 * 图书标识
	 **/
	ibizbookid?: any;
	
	/**
	 * 建立时间
	 **/
	createdate?: any;
	
	/**
	 * 更新人
	 **/
	updateman?: any;
	
	/**
	 * 更新时间
	 **/
	updatedate?: any;
	
	/**
	 * 图书作者
	 **/
	author?: any;
	
	/**
	 * 图书价格
	 **/
	price?: any;
	
	/**
	 * 图书出版社
	 **/
	press?: any;
	
	/**
	 * 图书类型
	 **/
	type?: any;
	
	/**
	 * 图书数量
	 **/
	booknumber?: any;
	
	/**
	 * 图书描述
	 **/
	subtext?: any;
	
	/**
	 * 借出日期
	 **/
	lendouttime?: any;
	
	/**
	 * 归还日期
	 **/
	returntime?: any;
	
	/**
	 * 图标
	 **/
	icon?: any;
	
	/**
	 * 图书销售状态
	 **/
	sailstate?: any;
	
	/**
	 * 图书借阅状态
	 **/
	borrowstatus?: any;
	
	/**
	 * 步骤
	 **/
	stepstatus?: any;
	
	/**
	 * 借阅人
	 **/
	borrower?: any;
	
	/**
	 * 借阅方式
	 **/
	borrowway?: any;
	
	/**
	 * 归还图馆
	 **/
	returnlib?: any;
	
	/**
	 * 借阅人ID
	 **/
	borrowerid?: any;
	
	/**
	 * 借阅人1
	 **/
	borrower1?: any;
	
	/**
	 * 借阅人1_ID
	 **/
	borrower1id?: any;
	
	/**
	 * 借阅人2
	 **/
	borrower2?: any;
	
	/**
	 * 借阅人2_ID
	 **/
	borrower2_id?: any;
	
	/**
	 * 借阅人3
	 **/
	borrower3?: any;
	
	/**
	 * 借阅人3_ID
	 **/
	borrower3_id?: any;
	
	/**
	 * 标签
	 **/
	tag?: any;
	

	/**
	 * 重置实体数据
	 *
	 * @param {IParam} [data={}]
	 * @memberof IBIZBOOKBase
	 */
	reset(data: IParam = {}): void {
		super.reset(data);
		this.ibizbookname = data.ibizbookname || data.srfmajortext;
		this.ibizbookid = data.ibizbookid || data.srfkey;
	}
}